const express = require('express')
const session = require('express-session')
const app = express()
const port = 3000

app.use(express.urlencoded({ extended: false }))
app.use(express.json())
// 注册session 中间件
// 注意： 只有配置过中间件后  才可以在 req.session 访问 session 对象
app.use(session({
    secret: 'jiami-key',   // 加密key
    resave: false,         //  固定写法
    saveUninitialized: true,// 固定写法
}))
app.post('/api/login', (req, res) => {
    if (req.body.name === 'admin' && req.body.password === '000000') {

        //登陆成功  配置session
        // 注意： 只有成功配置 express-session 中间件后 res.session 才能访问
        // 可以自定义属性 user || userinfo
        req.session.user = req.body   // 用户信息
        req.session.islogin = true    // 登录状态

        res.json({
            code: 200,
            msg: '登录成功'
        })
    } else {
        res.json({
            code: 1000,
            msg: "登录失败"
        })
    }
})
app.get('/api/username', (req, res) => {
    if (!req.session.islogin) {
        res.json({
            code: 10001,
            msg: '登录失败'
        })
    } else {
        res.json({
            code: 200,
            msg: '登陆成功',
            data: { name: req.session.user.name }
        })
    }
})
app.post('/api/logout', (req, res) => {
    if (req.session.islogin) {
        // 只会清除当前用户的 session信息
        req.session.destroy()
        res.json({
            code: 200,
            msg: '退出登录成功',
            data: null
        })
    } else {
        res.json({
            code: 10003,
            msg: '请勿重复登出',
            data: null
        })
    }


})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))